package org.bigdata.framework.core.protocol;

import java.util.HashMap;
import java.util.List;

import org.bigdata.framework.core.model.CommunityCategory;
import org.bigdata.framework.core.model.CommunityDomain;
import org.bigdata.framework.core.model.CommunityKnowledge;
import org.bigdata.framework.core.model.CommunityKnowledgeCollect;
import org.bigdata.framework.core.model.CommunityKnowledgeComment;
import org.bigdata.framework.core.model.CommunityKnowledgeCommentReply;
import org.bigdata.framework.core.model.CommunityKnowledgeFollower;
import org.bigdata.framework.core.model.CommunityKnowledgeGraph;
import org.bigdata.framework.core.model.CommunityKnowledgeGraphComment;
import org.bigdata.framework.core.model.CommunityKnowledgeGraphDianzan;
import org.bigdata.framework.core.model.CommunityKnowledgeGraphNode;
import org.bigdata.framework.core.model.CommunityKnowledgeGraphTrends;
import org.bigdata.framework.core.model.CommunityKnowledgePoint;
import org.bigdata.framework.core.model.CommunityKnowledgeResource;
import org.bigdata.framework.core.model.CommunityKnowledgeResourceTrends;
import org.bigdata.framework.core.model.CommunityKnowledgeDianzan;
import org.bigdata.framework.core.model.CommunityUserMesssage;
import org.bigdata.framework.core.model.CommunityUserVisitor;

/**
 * 
 * @author zf
 * 2017年9月11日10:06:44
 * 知识社区
 */
public interface ICommunityService {

    /* 分类 start */
    CommunityCategory saveCommunityCategory(CommunityCategory communityCategory);
    CommunityCategory editCommunityCategory(CommunityCategory communityCategory);
    void deleteCommunityCategory(CommunityCategory communityCategory);
    CommunityCategory findCommunityCategory(Integer id);
    List<CommunityCategory> getCommunityCategory();
    List<CommunityCategory> getCommunityCategory(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityCategoryCount(HashMap<String, Object> queryParams);
    /*分类 end */
    
    /* 领域 start */
    CommunityDomain saveCommunityDomain(CommunityDomain communityDomain);
    CommunityDomain editCommunityDomain(CommunityDomain communityDomain);
    void deleteCommunityDomain(CommunityDomain communityDomain);
    CommunityDomain findCommunityDomain(Integer id);
    List<CommunityDomain> getCommunityDomain();
    List<CommunityDomain> getCommunityDomain(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityDomainCount(HashMap<String, Object> queryParams);
    /*领域  end */
    
    /* 知识库表 start */
    CommunityKnowledge saveCommunityKnowledge(CommunityKnowledge communityKnowledge);
    CommunityKnowledge editCommunityKnowledge(CommunityKnowledge communityKnowledge);
    void deleteCommunityKnowledge(CommunityKnowledge communityKnowledge);
    CommunityKnowledge findCommunityKnowledge(Integer id);
    List<CommunityKnowledge> getCommunityKnowledge();
    List<CommunityKnowledge> getCommunityKnowledge(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeCount(HashMap<String, Object> queryParams);
    /*知识库表 end */
    
    /* 知识内容表-评论表 start */
    CommunityKnowledgeComment saveCommunityKnowledgeComment(CommunityKnowledgeComment communityKnowledgeComment);
    CommunityKnowledgeComment editCommunityKnowledgeComment(CommunityKnowledgeComment communityKnowledgeComment);
    void deleteCommunityKnowledgeComment(CommunityKnowledgeComment communityKnowledgeComment);
    CommunityKnowledgeComment findCommunityKnowledgeComment(Integer id);
    List<CommunityKnowledgeComment> getCommunityKnowledgeComment();
    List<CommunityKnowledgeComment> getCommunityKnowledgeComment(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeCommentCount(HashMap<String, Object> queryParams);
    /*知识内容表-评论表 end */
    
    /* 知识内容表-评论-回复表 start */
    CommunityKnowledgeCommentReply saveCommunityKnowledgeCommentReply(CommunityKnowledgeCommentReply communityKnowledgeCommentReply);
    CommunityKnowledgeCommentReply editCommunityKnowledgeCommentReply(CommunityKnowledgeCommentReply communityKnowledgeCommentReply);
    void deleteCommunityKnowledgeCommentReply(CommunityKnowledgeCommentReply communityKnowledgeCommentReply);
    CommunityKnowledgeCommentReply findCommunityKnowledgeCommentReply(Integer id);
    List<CommunityKnowledgeCommentReply> getCommunityKnowledgeCommentReply();
    List<CommunityKnowledgeCommentReply> getCommunityKnowledgeCommentReply(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeCommentReplyCount(HashMap<String, Object> queryParams);
    /*知识内容表-评论-回复表 end */
    
    /* 知识库-关注者表 start */
    CommunityKnowledgeFollower saveCommunityKnowledgeFollower(CommunityKnowledgeFollower communityKnowledgeFollower);
    CommunityKnowledgeFollower editCommunityKnowledgeFollower(CommunityKnowledgeFollower communityKnowledgeFollower);
    void deleteCommunityKnowledgeFollower(CommunityKnowledgeFollower communityKnowledgeFollower);
    CommunityKnowledgeFollower findCommunityKnowledgeFollower(Integer id);
    List<CommunityKnowledgeFollower> getCommunityKnowledgeFollower();
    List<CommunityKnowledgeFollower> getCommunityKnowledgeFollower(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeFollowerCount(HashMap<String, Object> queryParams);
    /*知识库-关注者表 end */
    
    /* 知识图谱表 start */
    CommunityKnowledgeGraph saveCommunityKnowledgeGraph(CommunityKnowledgeGraph communityKnowledgeGraph);
    CommunityKnowledgeGraph editCommunityKnowledgeGraph(CommunityKnowledgeGraph communityKnowledgeGraph);
    void deleteCommunityKnowledgeGraph(CommunityKnowledgeGraph communityKnowledgeGraph);
    CommunityKnowledgeGraph findCommunityKnowledgeGraph(Integer id);
    List<CommunityKnowledgeGraph> getCommunityKnowledgeGraph();
    List<CommunityKnowledgeGraph> getCommunityKnowledgeGraph(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeGraphCount(HashMap<String, Object> queryParams);
    /*知识图谱表 end */
    
    /* 知识图谱-评论-回复表 start */
    CommunityKnowledgeGraphComment saveCommunityKnowledgeGraphComment(CommunityKnowledgeGraphComment communityKnowledgeGraphComment);
    CommunityKnowledgeGraphComment editCommunityKnowledgeGraphComment(CommunityKnowledgeGraphComment communityKnowledgeGraphComment);
    void deleteCommunityKnowledgeGraphComment(CommunityKnowledgeGraphComment communityKnowledgeGraphComment);
    CommunityKnowledgeGraphComment findCommunityKnowledgeGraphComment(Integer id);
    List<CommunityKnowledgeGraphComment> getCommunityKnowledgeGraphComment();
    List<CommunityKnowledgeGraphComment> getCommunityKnowledgeGraphComment(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeGraphCommentCount(HashMap<String, Object> queryParams);
    /*知识图谱-评论-回复表 end */
    
    /* 知识图谱-点赞表 start */
    CommunityKnowledgeGraphDianzan saveCommunityKnowledgeGraphDianzan(CommunityKnowledgeGraphDianzan communityKnowledgeGraphDianzan);
    CommunityKnowledgeGraphDianzan editCommunityKnowledgeGraphDianzan(CommunityKnowledgeGraphDianzan communityKnowledgeGraphDianzan);
    void deleteCommunityKnowledgeGraphDianzan(CommunityKnowledgeGraphDianzan communityKnowledgeGraphDianzan);
    CommunityKnowledgeGraphDianzan findCommunityKnowledgeGraphDianzan(Integer id);
    List<CommunityKnowledgeGraphDianzan> getCommunityKnowledgeGraphDianzan();
    List<CommunityKnowledgeGraphDianzan> getCommunityKnowledgeGraphDianzan(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeGraphDianzanCount(HashMap<String, Object> queryParams);
    /*知识图谱-点赞表 end */
    
    /* 知识图谱-节点表start */
    CommunityKnowledgeGraphNode saveCommunityKnowledgeGraphNode(CommunityKnowledgeGraphNode communityKnowledgeGraphNode);
    CommunityKnowledgeGraphNode editCommunityKnowledgeGraphNode(CommunityKnowledgeGraphNode communityKnowledgeGraphNode);
    void deleteCommunityKnowledgeGraphNode(CommunityKnowledgeGraphNode communityKnowledgeGraphNode);
    CommunityKnowledgeGraphNode findCommunityKnowledgeGraphNode(Integer id);
    List<CommunityKnowledgeGraphNode> getCommunityKnowledgeGraphNode();
    List<CommunityKnowledgeGraphNode> getCommunityKnowledgeGraphNode(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeGraphNodeCount(HashMap<String, Object> queryParams);
    /*知识图谱-节点表 end */
    
    /* 知识库-图谱分享动态 start */
    CommunityKnowledgeGraphTrends saveCommunityKnowledgeGraphTrends(CommunityKnowledgeGraphTrends communityKnowledgeGraphTrends);
    CommunityKnowledgeGraphTrends editCommunityKnowledgeGraphTrends(CommunityKnowledgeGraphTrends communityKnowledgeGraphTrends);
    void deleteCommunityKnowledgeGraphTrends(CommunityKnowledgeGraphTrends communityKnowledgeGraphTrends);
    CommunityKnowledgeGraphTrends findCommunityKnowledgeGraphTrends(Integer id);
    List<CommunityKnowledgeGraphTrends> getCommunityKnowledgeGraphTrends();
    List<CommunityKnowledgeGraphTrends> getCommunityKnowledgeGraphTrends(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeGraphTrendsCount(HashMap<String, Object> queryParams);
    /*知识库-图谱分享动态 end */

    /* 知识点表 start */
    CommunityKnowledgePoint saveCommunityKnowledgePoint(CommunityKnowledgePoint communityKnowledgePoint);
    CommunityKnowledgePoint editCommunityKnowledgePoint(CommunityKnowledgePoint communityKnowledgePoint);
    void deleteCommunityKnowledgePoint(CommunityKnowledgePoint communityKnowledgePoint);
    CommunityKnowledgePoint findCommunityKnowledgePoint(Integer id);
    List<CommunityKnowledgePoint> getCommunityKnowledgePoint();
    List<CommunityKnowledgePoint> getCommunityKnowledgePoint(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgePointCount(HashMap<String, Object> queryParams);
    /*知识点表 end */
    
    /* 知识资源表 start */
    CommunityKnowledgeResource saveCommunityKnowledgeResource(CommunityKnowledgeResource communityKnowledgeResource);
    CommunityKnowledgeResource editCommunityKnowledgeResource(CommunityKnowledgeResource communityKnowledgeResource);
    void deleteCommunityKnowledgeResource(CommunityKnowledgeResource communityKnowledgeResource);
    CommunityKnowledgeResource findCommunityKnowledgeResource(Integer id);
    List<CommunityKnowledgeResource> getCommunityKnowledgeResource();
    List<CommunityKnowledgeResource> getCommunityKnowledgeResource(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeResourceCount(HashMap<String, Object> queryParams);
    /*知识资源表 end */
    
    /* 知识库-资源收录动态 start */
    CommunityKnowledgeResourceTrends saveCommunityKnowledgeResourceTrends(CommunityKnowledgeResourceTrends communityKnowledgeResourceTrends);
    CommunityKnowledgeResourceTrends editCommunityKnowledgeResourceTrends(CommunityKnowledgeResourceTrends communityKnowledgeResourceTrends);
    void deleteCommunityKnowledgeResourceTrends(CommunityKnowledgeResourceTrends communityKnowledgeResourceTrends);
    CommunityKnowledgeResourceTrends findCommunityKnowledgeResourceTrends(Integer id);
    List<CommunityKnowledgeResourceTrends> getCommunityKnowledgeResourceTrends();
    List<CommunityKnowledgeResourceTrends> getCommunityKnowledgeResourceTrends(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeResourceTrendsCount(HashMap<String, Object> queryParams);
    /*知识库-资源收录动态 end */
    
    /* 个人中心 -留言 start */
    CommunityUserMesssage saveCommunityUserMesssage(CommunityUserMesssage communityUserMesssage);
    CommunityUserMesssage editCommunityUserMesssage(CommunityUserMesssage communityUserMesssage);
    void deleteCommunityUserMesssage(CommunityUserMesssage communityUserMesssage);
    CommunityUserMesssage findCommunityUserMesssage(Integer id);
    List<CommunityUserMesssage> getCommunityUserMesssage();
    List<CommunityUserMesssage> getCommunityUserMesssage(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityUserMesssageCount(HashMap<String, Object> queryParams);
    /* 个人中心 -留言 end */
    
    /*知识库-点赞   stat */
	CommunityKnowledgeDianzan saveCommunityKnowledgeDianzan(CommunityKnowledgeDianzan communityKnowledgeDianzan);
	CommunityKnowledgeDianzan editCommunityKnowledgeDianzan(CommunityKnowledgeDianzan communityKnowledgeDianzan);
    void deleteCommunityKnowledgeDianzan(CommunityKnowledgeDianzan communityKnowledgeDianzan);
    CommunityKnowledgeDianzan findCommunityKnowledgeDianzan(Integer id);
    List<CommunityKnowledgeDianzan> getCommunityKnowledgeDianzan();
    List<CommunityKnowledgeDianzan> getCommunityKnowledgeDianzan(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeDianzanCount(HashMap<String, Object> queryParams);
    /*知识库-点赞   end */
    
    /*知识库-收藏   stat */
    CommunityKnowledgeCollect saveCommunityKnowledgeCollect(CommunityKnowledgeCollect communityKnowledgeCollect);
    CommunityKnowledgeCollect editCommunityKnowledgeCollect(CommunityKnowledgeCollect communityKnowledgeCollect);
    void deleteCommunityKnowledgeCollect(CommunityKnowledgeCollect communityKnowledgeCollect);
    CommunityKnowledgeCollect findCommunityKnowledgeCollect(Integer id);
    List<CommunityKnowledgeCollect> getCommunityKnowledgeCollect();
    List<CommunityKnowledgeCollect> getCommunityKnowledgeCollect(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityKnowledgeCollectCount(HashMap<String, Object> queryParams);
    /*知识库-收藏   end */
    
    /*个人-最新访客表   stat */
    CommunityUserVisitor saveCommunityUserVisitor(CommunityUserVisitor communityUserVisitor);
    CommunityUserVisitor editCommunityUserVisitor(CommunityUserVisitor communityUserVisitor);
    void deleteCommunityUserVisitor(CommunityUserVisitor communityUserVisitor);
    CommunityUserVisitor findCommunityUserVisitor(Integer id);
    List<CommunityUserVisitor> getCommunityUserVisitor();
    List<CommunityUserVisitor> getCommunityUserVisitor(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
    Integer getCommunityUserVisitorCount(HashMap<String, Object> queryParams);
    /*个人-最新访客表   end */
}
